package com.doublethread.easymart.modules.user.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 用户统计信息VO
 * 用于管理端用户统计数据展示
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserStatisticsVO {

    // ==================== 基础统计 ====================

    /**
     * 总用户数
     */
    private Long totalUsers;

    /**
     * 正常状态用户数（status=1）
     */
    private Long activeUsers;

    /**
     * 禁用状态用户数（status=0）
     */
    private Long disabledUsers;

    // ==================== 新增统计 ====================

    /**
     * 今日新增用户数
     */
    private Long todayNewUsers;

    /**
     * 本周新增用户数
     */
    private Long weekNewUsers;

    /**
     * 本月新增用户数
     */
    private Long monthNewUsers;

    // ==================== 活跃度统计 ====================

    /**
     * 今日活跃用户数（今日有登录）
     */
    private Long todayActiveUsers;

    /**
     * 本周活跃用户数
     */
    private Long weekActiveUsers;

    /**
     * 本月活跃用户数
     */
    private Long monthActiveUsers;

    // ==================== 属性分布 ====================

    /**
     * 男性用户数（gender=1）
     */
    private Long maleUsers;

    /**
     * 女性用户数（gender=2）
     */
    private Long femaleUsers;

    /**
     * 未知性别用户数（gender=0）
     */
    private Long unknownGenderUsers;

    // ==================== 元数据 ====================

    /**
     * 统计时间
     */
    private LocalDateTime statisticsTime;
}
